package com.cda.pes.mapper;


import com.cda.pes.VO.CartVO;
import com.cda.pes.pojo.Cart;
import org.apache.ibatis.annotations.Mapper;

import java.util.Date;
import java.util.List;

/** 购物车持久层的接口*/
@Mapper
public interface CartMapper {

    /**
     * 插入购物车数据
     * @param cart  购物车数据
     * @return 受影响行数
     */
    Integer insert(Cart cart);

    /**
     * 更新购物车某件商品的数量
     * @param cid   购物车数据id
     * @param num   更新的数量
     * @param modifiedUser  修改者
     * @param modifiedTime  修改时间
     * @return  受影响行数
     */
    Integer updateNumByCid(Integer cid, Integer num, String modifiedUser, Date modifiedTime);

    /**
     * 根据用户id和商品id来查询购物车中的数据
     * @param uid   用户id
     * @param pid   商品id
     * @return      数据
     */
    Cart findByUidAndPid(Integer uid, Integer pid);

    List<CartVO> findVOByUid(Integer uid);

    /**
     * 根据购物车数据id查询购物车数据详情
     * @param cid 购物车数据id
     * @return 匹配的购物车数据详情，如果没有匹配的数据则返回null
     */
    Cart findByCid(Integer cid);

    /**
     * 根据若干个购物车数据id查询详情的列表
     * @param cids 若干个购物车数据id
     * @return 匹配的购物车数据详情的列表
     */
    List<CartVO> findVOByCids(Integer[] cids);
}
